Method and apparatus for high velocity ripple suppression of brushless dc motors having limited drive/amplifier bandwidth

ABSTRACT

A method and apparatus are provided for ripple suppression of brushless DC motors at any given velocity irrespective of the limited bandwidth of the driver/amplifier supplying the excitation currents to the stator. In a preferred embodiment, Fourier coefficients of the current waveform are calculated as a function of rotor velocity by taking into account the driver/amplifier&#39;s finite bandwidth dynamics. For a given velocity, Fourier coefficients of the series approximating the waveform (control signal) are calculated as a function of the rotor velocity and the amplifier dynamics, to generate a waveform that results in no torque or velocity pulsations. When changing the motor speed, the coefficients are updated (recalculated) based on the new desired velocity (and amplifier dynamics), resulting in generation of an updated waveform that results in no torque or velocity pulsations at the new motor speed.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is directed to brushless DC motors, and more particularly to a method and apparatus for ripple suppression in brushless DC motors having limited drive/amplifier bandwidth when operated at high velocity.

2. Description of the Related Art

Brushless DC (BLDC) motors, or electronically commutated motors (ECMs, EC motors) are electric motors that are powered by direct-current (DC) electricity via electronic commutation systems. BLDC motors exhibit linear current-to-torque and frequency-to-speed relationships and are commonly used as servo drives for precision motion control in numerous applications ranging from silicon wafer manufacturing, medical, robotics and automation industries to military applications.

BLDC motors comprise a rotor having a plurality of permanent magnets, a stator with electromagnetic coil armature windings, and a commutator for continually switching the phase of the current in the armature windings to induce motion in the rotor. More particularly, an electronic controller causes the commutator to apply excitation current to the armature windings in a specific order in order to rotate the magnetic field generated by the windings thereby causing the rotor magnets to be pulled into alignment with the moving magnetic fields and thereby drive rotation of the rotor.

Prior art relating generally to the construction of BLDC motors and controllers therefor, includes: U.S. Pat. No. 6,144,132; U.S. Pat. No. 7,715,698; U.S. Pat. No. 7,852,025; U.S. Pat. No. 7,906,930; US 2010/0109458; US 2010/01487101; US 2010/0176756; US 2010/0181947; US 2010/0270957; US 2010/0314962; US 2011/0031916; US 2011/0074325; US 2011/0133679. The following patent documents are directed to methods of controlling speed (velocity) of BLDC motors: U.S. Pat. No. 4,720,663; U.S. Pat. No. 4,855,652; U.S. Pat. No. 5,563,980; U.S. Pat. No. 5,757,152; U.S. Pat. No. 6,049,187; U.S. Pat. No. 6,313,601; U.S. Pat. No. 6,822,419; U.S. Pat. No. 6,828,748; U.S. Pat. No. 6,922,038; U.S. Pat. No. 7,375,488; U.S. Pat. No. 7,994,744; US 2005/0035732; US 2009/0128078; US 2010/0001670; US 2010/0134055; US 2010/0171453.

In order to control the speed of rotor rotation, the electronic controller requires information relating to the rotor's orientation/position (relative to the armature windings). The following patent documents are directed to methods of commutating and controlling BLDC motors relying on feedback of the sensed rotor position: US 2010/0117572; US 2010/0134059; US 2010/0237818; US 2010/0264862; US 2010/0270960; US 2011/0043146; US 2011/0176229.

Some electronic controllers use Hall Effect sensors or rotary encoders to directly measure the rotor position. Other controllers measure the back EMF in the windings to infer the rotor position. The following patent documents disclose methods of commutating and controlling BLDC motors relying on feedback of sensed back electromotive force (back EMF): U.S. Pat. No. 5,057,753; U.S. Pat. No. 5,231,338; US 2011/0074327; US 2011/0115423; US 2011/0121770; US 2011/0156622; US 2011/0210688. Additional background patent literature relevant to commutating BLDC motors using feedback includes: U.S. Pat. No. 7,893,638; U.S. Pat. No. 7,969,108; US 2010/0052584; US 2010/0090633; US 2010/0237813; US 2010/0237814; US 2010/0315027; US 201110006712; US 201110025237; US 201110043144; US 201110084639; US 201110148336; US 201110202941; US 201110205662.

Typically, the excitation current generated by the commutator has insufficient power to be fed directly to the coils, and must be amplified to an appropriate power level by a driver/amplifier. The conventional driver/amplifier of a BLDC motor produces sinusoidal armature current waveforms to the armature windings for smooth motor operation. However, in practice, the actual magneto-motive force generated by a non-ideal motor is not perfectly sinusoidally distributed, and can therefore result in ‘torque ripple’. It is known that suppressing torque ripple in the motor drive of a servo system can significantly improve system performance by reducing speed fluctuations (see Park, S. J., Park, H. W., Lee, M. H. and Harashima, F.: A new approach for minimum-torque-ripple maximum-efficiency control of BLDC motor, IEEE Trans. on Industrial Electronics 47(1), 109-114 (2000); and Aghili, F., Buehler, M. and Hollerbach, J. M.: Experimental characterization and quadratic programming-based control of brushless-motors, IEEE Trans. on Control Systems Technology 11(1),139-146 (2003) [hereinafter Aghili et al., 2003].

One known solution to reducing torque ripple in commercial high-performance electric motors is to increase the number of motor poles. However, such motors tend to be expensive and bulky due to the construction and assembly of multiple coil windings.

Other control approaches for accurate torque control in electric motors, and their underlying models, are set forth in the patent literature. For example, the following patent documents are directed to various methods and systems for stabilizing or reducing torque ripple in synchronous electric motors, particularly BLDC motors: U.S. Pat. No. 4,511,827; U.S. Pat. No. 4,525,657; U.S. Pat. No. 4,546,294; U.S. Pat. No. 4,658,190; U.S. Pat. No. 4,912,379; U.S. Pat. No. 5,191,269; U.S. Pat. No. 5,569,989; U.S. Pat. No. 5,625,264; U.S. Pat. No. 5,672,944; U.S. Pat. No. 6,437,526; U.S. Pat. No. 6,737,771; U.S. Pat. No. 6,859,001; U.S. Pat. No. 7,166,984; U.S. Pat. No. 7,859,209; U.S. Pat. No. 7,952,308; US 201110175556.

Additional prior art approaches for providing accurate torque production in electric motors are set forth in the non-patent literature.

For example, Le-Huy, H., Perret, R. and Feuillet, R.: Minimization of torque ripple in brushless dc motor drives, IEEE Trans. Industry Applications 22(4), 748-755 (1986), and Favre, E., Cardoletti, L. and Jufer, M.: 1993, Permanent-magnet synchronous motors: A comprehensive approach to cogging torque suppression, IEEE Trans. Industry Applications 29(6), 1141-1149, describe a method of reducing the torque-ripple harmonics for brushless motors by using several current waveforms.

Ha and Kang: Explicit characterization of all feedback linearizing controllers for a general type of brushless dc motor, IEEE Trans. Automatic Control 39(3), 673-6771994 (1994) characterize, in an explicit form, the class of feedback controllers that produce ripple-free torque in brushless motors.

Newman, W. S. and Patel, J. J.: Experiments in torque control of the AdeptOne robot, Sacramento, Calif., pp. 1867-1872 (1991) discuss the use of a 2-D lookup table and a multivariate function to determine the phase currents of a variable-reluctance motor with respect to position and torque set points.

Optimal torque control schemes for reducing torque ripples and minimizing copper losses in BLDC motors have been proposed (see Hung, Y and Ding, Z.: Design of currents to reduce torque ripple in brushless permanent magnet motors, IEEE Proc. Pt. B 140(4) (1993) [hereinafter Hung-Ding 1993]; Aghili, F., Buehler, M. and Hollerbach, J. M.: Optimal commutation laws in the frequency domain for PM synchronous direct-drive motors, IEEE Transactions on Power Electronics 15(6), 1056-1064 (2000) [hereinafter Aghili et al., 2000]; Park, S. J., Park, H. W., Lee, M. H. and Harashima, F.: A new approach for minimum-torque-ripple maximum-efficiency control of BLDC motor, IEEE Trans. on Industrial Electronics 47(1), 109-114 (2000); as well as Aghili et al., 2003, above.

Wang, J., Liu, H., Zhu, Y., Cui, B. and Duan, H.: 2006, A new minimum torque-ripple and sensorless control scheme of bldc motors based on rbf networks, IEEE Int. Conf. on Power Electronics and Motion Control, Shanghai, China, pp. 1-4 (2006), proposes a method for minimizing the torque ripples generated by non-ideal current waveforms in a BLDC motor having no position sensors, by adjusting actual phase currents.

Similarly, the electrical rotor position can be estimated using winding inductance, and the stationary reference frame stator flux linkages and currents can be used for a sensorless torque control method using d-axis current, as set forth in Ozturk, S. and Toliyat, H. A.: Sensorless direct torque and indirect flux control of brushless dc motor with non-sinusoidal back-EMF, IEEE Annual Conf. on Industrial Electronics IECON, Orlando, Fla., pp. 1373-1378 (2008).

Lu, H., Zhang, L. and Qu, W., A new torque control method for torque ripple minimization of BLDC motors with un-ideal back EMF, IEEE Trans. on Power Electronics 23(2), 950-958 (2008), sets forth a torque control method to attenuate torque ripple of BLDC motors with non-ideal back electromotive force (EMF) waveforms, wherein the influence of finite dc bus supply voltage is considered in the commutation period.

A low cost BLDC drive system is set forth in Feipeng, X., Tiecai, L. and Pinghua, T.: A low cost drive strategy for BLDC motor with low torque ripples, IEEE Int. Conf. on Industrial Electronics and Applications, Singapore, pp. 2499-2502 (2008), wherein only a current sensor and proportional-integral-derivative controller (PID controller) are used to minimize the pulsating torque.

In the prior art set forth above, it is assumed that the phase currents can be controlled accurately and instantaneously and that they may therefore be treated as control inputs, such that the waveforms of the motor phase currents may be adequately pre-shaped so that the generated torque is equal to the requested torque. However, at high rotor velocity the commutator generates high frequency control signals that the finite bandwidth motor dynamics of the driver/amplifier may not be able to respond sufficiently quickly. Thus, complete compensation for the position nonlinearity of the motor torque cannot be achieved in the presence of amplifier dynamics, with the result that pulsation torque therefore appears at high motor velocities. As discussed above, torque ripple can significantly deteriorate the performance of the servo control system and even lead to instability if the ripple frequency is close to the modal frequency of the closed-loop system.

In Aghili et al., 2000, above, an optimal commutation scheme is set forth based on Fourier coefficients in BLDC motors. This was followed by Aghili, F.: Adaptive reshaping of excitation currents for accurate torque control of brushless motors, IEEE Trans. on Control System Technologies 16(2), 356-364 (2008), which developed a self-tuning adaptive version of the commutation law that estimates the Fourier coefficients of the waveform associated with the motor's electromotive force based on measurements of motor phase voltage and angle.

Other prior art has addressed the application of Fourier analysis to BDLC motor control. For example, U.S. Pat. No. 6,380,658 discloses a method and apparatus for torque ripple reduction in a sinusoidally excited brushless permanent magnet motor for automotive applications (for electric power steering, as an alternative to hydraulic power steering). In essence, the physical components of the BLDC motor are designed to a predetermined geometry for reducing torque ripple when the motor is sinusoidally excited (i.e. driven by a sinusoidal current supplied to its armature coils). More specifically, the method of the '658 patent applies an elementary Fourier analysis to determine one specific dimension of the rotor of a given shape which minimizes the fifth harmonic component of the magnetic flux in the air gap between the stator and the rotor, when the motor is driven by a sinusoidal current. The fifth harmonic is identified as the lowest harmonic having adverse influence on torque ripple and therefore the one that should be eliminated to the extent possible.

U.S. Pat. No. 7,629,764 discloses a method of controlling a high-speed servomotor, such as a BLDC motor, operating under control of a PWM (pulse-width modulation) controller, to attain optimal performance and stability margins across an operational range encompassing the entire torque versus speed curve of the motor. According to the '764 patent, the torque versus speed curve for the motor is divided into operating regions, and control parameters are calculated for each region. Fourier analysis (transforms) of various feedback signals received from the operating motor (e.g., the electric current flowing through the motor and its actual speed) is carried out in real time to produce fundamental and harmonic components of the feedback signals, which components are then used to produce an output voltage command for controlling the motor.

Additional patent literature is directed to methods and systems for controlling and/or operating electric motors using Fourier transforms of signals, including: FR 2,825,203; JP 2001238,484; JP 2007143,237; U.S. Pat. No. 4,7440,41; U.S. Pat. No. 5,280,222; U.S. Pat. No. 5,455,498; U.S. Pat. No. 5,844,388. The foregoing patent references disclose various methods for controlling or commutating electric motors, in particular BLDC motors, using the results of Fourier transforms of various periodic signals, feedback or otherwise.

Additional non-patent literature relevant to this disclosure includes:

-   -   Murai, Y, Kawase, Y, Ohashi, K., Nagatake, K. and Okuyama, K.:         1989, Torque ripple improvement for brushless dc miniature         motors, Industry Applications, IEEE Transactions on 25(3),         441-450;     -   Delecluse, C. and Grenier, D.: 1998, A measurement method of the         exact variations of the self and mutual inductances of a buried         permanent magnet synchronous motor and its application to the         reduction of torque ripples, 5th International Workshop on         Advanced Motion Control, Coimbra, pp. 191-197;     -   Wallace, R. S. and Taylor, D. G.: 1991, Low-torque-ripple         switched reluctance motors for direct-drive robotics, IEEE         Trans. Robotics & Automation 7(6), 733-742;     -   Filicori, E, Bianco, C. G. 1. and Tonielli, A.: 1993, Modeling         and control strategies for a variable reluctance direct-drive         motor, IEEE Trans. Industrial Electronics 40(1), 105115;     -   Matsui, N., Makino, T. and Satoh, H.: 1993, Autocompensation of         torque ripple of direct drive motor by torque observer, IEEE         Trans. on Industry Application 29(1), 187-194;     -   Taylor, D. G.: 1994, Nonlinear control of electric machines: An         overview, IEEE Control Systems Magazine 14(6), 41-51;     -   Kang, J.-K. and Sui, S.-K.: 1999, New direct torque control of         induction motor for minimum torque ripple and constant switching         frequency, IEEE Trans. on Industry Applications 35(5),         1076-1082.;     -   French, G. and Acamley, P.: 1996, Direct torque control of         permanent magnet drives, IEEE Trans. on Industry Applications         32(5), 1080-1088;     -   Kang, J.-K. and Sui, S.-K.: 1999, New direct torque control of         induction motor for minimum torque ripple and constant switching         frequency, IEEE Trans. on Industry Applications 35(5),         1076-1082;     -   Xu, Z. and Rahman, M. F.: 2004, A variable structure torque and         flux controller for a DTC IPM synchronous motor drive, IEEE 35th         Annual Power Electronics Specialists Conference, PESC04., pp.         445-450, Vol. 1).

SUMMARY OF THE INVENTION

According to the invention a method and apparatus are provided for ripple suppression of brushless DC motors at any given velocity irrespective of the limited bandwidth of the driver/amplifier supplying the excitation currents to the armature. In a preferred embodiment, Fourier coefficients of the current waveform are calculated as a function of rotor velocity by taking into account the driver/amplifier's finite bandwidth dynamics in order to eliminate pulsation torque. Unlike Aghili et al., 2000, above, the inventive commutation scheme updates the Fourier coefficients of the current waveform based on the desired velocity so that the torque ripple and velocity fluctuation are eliminated for a given velocity while power losses are simultaneously minimized. More particularly, since the control signal is a periodic function (i.e. a waveform), it can be approximated by a truncated (finite) Fourier series. For a given velocity, Fourier coefficients of the series approximating the waveform (control signal) are calculated as a function of the rotor velocity and the amplifier dynamics, to generate a waveform that results in no torque or velocity pulsations. When changing the motor speed, the coefficients are updated (recalculated) based on the new desired velocity (and amplifier dynamics), resulting in generation of an updated waveform that results in no torque or velocity pulsations at the new motor speed.

The above aspects can be attained by a method and apparatus of driving a load via a brushless DC motor, the method comprising: receiving a desired motor velocity ω_(d); receiving actual velocity ω and rotor position angle θ from said load; generating armature phase drive currents i*_(k), for a desired torque τ_(d) from the desired motor velocity ω_(d), actual velocity ω and rotor position angle θ using a modified commutation law; amplifying the armature phase drive currents via a driver/amplifier; and applying the amplified armature phase drive currents i_(k) to an armature of said brushless DC motor for rotating said load; wherein the modified commutation law comprises calculating compensated Fourier coefficients c′ of a truncated (finite) Fourier series approximating the armature phase drive currents for said desired motor velocity ω_(d) as a function of the actual velocity ω and transfer function of said driver/amplifier.

These together with other aspects and advantages which will be subsequently apparent, reside in the details of construction and operation as more fully hereinafter described and claimed, reference being had to the accompanying drawings forming a part hereof, wherein like numerals refer to like parts throughout.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a brushless DC motor according to a preferred embodiment of the invention.

FIG. 2 is a graph showing the motor phase waveform for the brushless DC motor in FIG. 1.

FIG. 3 is a flowchart showing a method for ripple suppression in brushless DC motors having limited drive/amplifier bandwidth when operated at high velocity, according to a preferred embodiment.

FIG. 4 is graph showing waveforms of the commutation function corresponding to different rotor velocities for the brushless DC motor in FIG. 1.

FIGS. 5A and 5B are bode plots of the driver/amplifier and the torque transfer function for the brushless DC motor in FIG. 1.

FIGS. 6A and 6B are step response curves for the closed-loop PI (proportional-integral) velocity controller of FIG. 1.

FIGS. 7A and 7B are step response curves of a velocity controller for a conventional commutation system.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Turning to FIG. 1, a BLDC motor 100 is illustrated, comprising a rotor 110 having a plurality of permanent magnets (not shown) for driving a mechanical load 160, a stator 120 with electromagnetic coil armature windings, and a controller for controlling rotation of the rotor 110, including a commutator 130 for generating drive current (i*₁, i*₂, i*₃) which is then amplified via driver/amplifier 140 (i₁, i₂, i₃) and applied to the stator 120 in a specific order, and a motion controller 150 for pre-shaping the current waveform on the basis of an input signal representing a desired motor velocity ω_(d). The actual velocity w and rotor position angle θ are fed back from the mechanical load 160 driven by the rotor 110.

In order to better understand the scientific principles behind the invention, the theory relating to modeling and control of motor torque is discussed below in terms of Fourier series, followed by a discussion of how the commutation law is modified at high velocity for ripple compensation and derivation of the torque transfer function, taking into account the dynamics of the driver/amplifier 140.

Consider the BLDC motor 100 with p phases (in FIG. 1, p=3), and assume that there is negligible cross-coupling between the phase torques and no reluctance torque. Then, the torque developed by a single phase is a function of the phase current i_(k) and the rotor position angle θ, as follows:

τ_(k)(i _(k),θ)=i _(k) y _(k)(θ) k=1, . . . , p   (1)

Where y_(k)(θ) is the position nonlinearity, or torque shape function, associated with the kth phase. The motor torque τ is the superposition of all phase torque contributions,

$\begin{matrix} {\tau = {\sum\limits_{k = 1}^{p}{{i_{k}\left( {\theta,\tau_{d}} \right)}{{y_{k}(\theta)}.}}}} & (2) \end{matrix}$

The torque control problem requires solving equation (2) in terms of current, i_(k)(θ),τ_(d)), as a function of motor position, given a desired motor torque τ_(d). For any scalar torque set point, equation (2) permits infinitely many (position dependent) phase current wave forms. Since the continuous mechanical power output of an electrical motor is limited primarily by heat generated from internal copper losses, the freedom in the phase current solutions may be used to minimize power losses,

P_(loss) ∝ i^(T)i,   (3)

where i=col (i₁, . . . i_(p)) is the vector of phase currents.

In rotary electric motors, the torque shape function is a periodic function. Since successive phase windings are shifted by 2π/p, the following relationship exists,

$\begin{matrix} {{{y_{k}(\theta)} = {y\left( {{q\; \theta} + \frac{2{\pi \left( {k - 1} \right)}}{p}} \right)}},{{\forall k} = 1},\ldots \mspace{14mu},p} & (4) \end{matrix}$

where q is the number of motor poles. The electronic commutator 130 commands the phase currents i*_(k), through

i* _(k)(τ_(d),θ)=τ_(d) u _(k)(θ), ∀k=1, . . . , p   (5)

where u_(k)(θ)) is the commutation shape function associated with the kth phase. The individual phase control signals can be expressed based on the periodic commutation function, u(θ) which is also a periodic function, i.e.,

${{u_{k}(\theta)} = {u\left( {{q\; \theta} + \frac{2{\pi \left( {k - 1} \right)}}{p}} \right)}},$

Since both the commutation shape function u(θ) and the torque shape function y(θ) are periodic functions with position periodicity of 2π/q, they can be approximated effectively via the truncated complex Fourier series

$\begin{matrix} {{{u(\theta)} = {\sum\limits_{n = {- N}}^{N}{c_{n}^{j\; {nq}\; \theta}}}},} & (6) \\ {{{y(\theta)} = {\sum\limits_{m = {- N}}^{N}{d_{m}^{j\; {mq}\; \theta}}}},} & (7) \end{matrix}$

where j=√{square root over (−1)} and N can be chosen arbitrary large, but 2N/p must be an integer. Since both are real valued functions, their negative Fourier coefficients are the conjugate of their real ones, c_(−n)= c _(n) and d_(−n)= d _(n). Furthermore, since the magnetic force is a conservative field for linear magnetic systems, the average torque over a period must be zero, and thus c₀=0.

The motor model and its control can be described by the vectors c, d ∈ C^(N) of the Fourier coefficients of u(θ) and y(θ), respectively, by

c=col(c ₁ , c ₂ , . . . , c _(N)),   (8)

d=col(d ₁ , d ₂ , . . . , d _(N)).   (9)

In the following, coefficient c may be determined for a given torque spectrum vector d so that the motor torque τ becomes ripple free, i.e. independent of the motor angle θ. It may be assumed that the driver/amplifier 140 delivers the demanded current instantaneously, i.e., i_(k)=i*_(k) for k=1, . . . , p. In this case, after substituting equations (4)-(1) into (2), we arrive at

$\begin{matrix} {\tau = {\tau_{d}{\sum\limits_{k = 1}^{p}{\sum\limits_{\underset{n \neq 0}{n = {- N}}}^{N}{\sum\limits_{\underset{m \neq 0}{m = {- N}}}^{N}{c_{n}d_{m}{^{{j{({n + m})}}{({{q\; \theta} + \frac{2{\pi {({k - 1})}}}{p}})}}.}}}}}}} & (10) \end{matrix}$

This expression can be simplified by noting that the first summation vanishes when l=m+n is not a multiple of p, i.e.,

$\begin{matrix} {{\sum\limits_{k = 1}^{p}^{j\; l\; \frac{2\; \pi {({k - 1})}}{p}}} = \left\{ \begin{matrix} p & {{{{if}\mspace{14mu} l} = {\pm p}},{{\pm 2}p},{{\pm 3}p},\ldots} \\ 0 & {{otherwise}.} \end{matrix} \right.} & (11) \end{matrix}$

Defining ρ:=pq, the torque expression (10) can be written in the following compact form

$\begin{matrix} {\tau = {\tau_{d}p{\sum\limits_{\underset{m \neq 0}{m = {- N}}}^{N}{\sum\limits_{n = {\lfloor{{({{- N} + m})}/p}\rfloor}}^{\lfloor{{({N + m})}/p}\rfloor}{d_{m}c_{n}^{{- j}\; {qm}\; \theta}^{{j\rho}\; n\; \theta}}}}}} & (12) \end{matrix}$

The expression of the torque in (12) can be divided into two parts: The position dependent torque, τ_(rip)(θ,τ_(d)), and the position independent torque, τ_(lin)(τ_(d)). That is

$\begin{matrix} {{\tau = {{\tau_{l{in}}\left( \tau_{d} \right)} + {\tau_{rip}\left( {\theta,\tau_{d}} \right)}}},{{in}\mspace{14mu} {which}}} & (13) \\ {{\tau_{l{in}}\left( \tau_{d} \right)} = {\tau_{d}k_{0}}} & (14) \\ {{{\tau_{rip}\left( {\theta,\tau_{d}} \right)} = {\tau_{d}{\sum\limits_{\underset{l \neq 0}{l = {{- 2}{N/p}}}}^{2{N/p}}{k_{l}^{{j\rho}\; l\; \theta}}}}},} & (15) \end{matrix}$

where k_(l) are the Fourier coefficients of the motor torque, and can be calculated by

$\begin{matrix} {k_{l} = \left\{ \begin{matrix} {{p{\sum\limits_{n = 1}^{N}{c_{n}{\overset{\_}{d}}_{n - {pl}}}}} + {p{\sum\limits_{n = 1}^{N - {pl}}{{\overset{\_}{c}}_{n}d_{n + {pl}}}}}} & {{{if}\mspace{14mu} l} < \frac{N}{p}} \\ {p{\sum\limits_{n = {{pl} - N}}^{{pl} - 1}{c_{n}d_{{pl} - n}}}} & {{otherwise}.} \end{matrix} \right.} & (16) \end{matrix}$

The term k₀ in (14) is the constant part of the circular convolution of u(θ) and y(θ). This, in turn, is equal to twice the real part of the inner product of the vectors c and d,

k₀=2pRe<c,d>.   (17)

A ripple-free torque implies that all coefficients k_(l) except k₀ are zero and k₀≡1 so that τ≡τ_(d). That is, the spectrum of the current excitation, c, must be calculated so that

$k_{n} = \left\{ \begin{matrix} 1 & {{{if}\mspace{14mu} n} = 0} \\ 0 & {otherwise} \end{matrix} \right.$

This problem has infinitely many solutions. In this case, it is possible to minimize the power dissipation by noting that the average of dissipated power per unit command torque over one period, assuming constant speed, is

$P_{loss} \propto {\frac{1}{T}{\int_{0}^{T}{{{i(t)}}^{2}{t}}}}$

By changing the integral variable from time t to θ, where dθ=ωdt and ωT=2π/q, we have

$\begin{matrix} {{P_{loss} \propto {\frac{q}{2\pi}{\sum\limits_{k = 1}^{P}{\int_{0}^{2{\pi/q}}{{u_{k}^{2}(\theta)}{\theta}}}}}},} & (18) \end{matrix}$

where τ_(d)≡1. By virtue of Parseval's theorem, the power loss per unit commanded torque, i.e. τ_(d)=1, is

P_(loss) ∝ p∥c∥²   (19)

A person of skill in the art will understand that minimizing power loss is tantamount to minimizing the Euclidean norm of the commutation spectrum vector ∥c∥.

Where the spectrum of the excitation current c ∈ C^(N) represents the set of unknown variables then, according to (16), in order to minimize power loss, we must solve

min ∥c∥²   (20)

subject to: Ac+B c−ζ=0,   (21)

where

${Ϛ\overset{\Delta}{=}{{{col}\left( {\frac{1}{p},0,\ldots \mspace{14mu},0} \right)} \in {\mathbb{R}}^{{2\; {N/p}} + 1}}},{{and}\mspace{14mu} {matrices}\mspace{14mu} A},{B \in C^{{({{2\frac{N}{P}} + 1})} \times N}}$

can be constructed from the torque spectrum vector. For example, for a three phase motor (p=3), the A and B matrices are given as

$\begin{matrix} {A = \begin{bmatrix} {\overset{\_}{d}}_{1} & {\overset{\_}{d}}_{2} & {\overset{\_}{d}}_{3} & {\overset{\_}{d}}_{4} & {\overset{\_}{d}}_{5} & \ldots & {\overset{\_}{d}}_{N - 1} & {\overset{\_}{d}}_{N} \\ d_{2} & d_{1} & 0 & {\overset{\_}{d}}_{1} & {\overset{\_}{d}}_{2} & \ldots & {\overset{\_}{d}}_{N - 4} & {\overset{\_}{d}}_{N - 3} \\ d_{5} & d_{4} & d_{3} & d_{2} & d_{1} & \ldots & {\overset{\_}{d}}_{N - 7} & {\overset{\_}{d}}_{N - 6} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ d_{N - 1} & d_{N - 2} & d_{N - 3} & d_{N - 4} & d_{N - 5} & \ldots & d_{1} & 0 \\ 0 & 0 & d_{N} & d_{N - 1} & d_{N - 2} & \ldots & d_{4} & d_{3} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ 0 & 0 & 0 & 0 & 0 & \ldots & 0 & d_{N} \end{bmatrix}} & (22) \\ {B = {\begin{bmatrix} d_{1} & d_{2} & d_{3} & d_{4} & d_{5} & \ldots & d_{N} \\ d_{4} & d_{5} & d_{6} & d_{7} & d_{8} & \ldots & 0 \\ d_{7} & d_{8} & d_{9} & d_{10} & d_{11} & \ldots & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ d_{N - 2} & 0 & 0 & 0 & 0 & \ldots & 0 \\ 0 & 0 & 0 & 0 & 0 & \ldots & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ 0 & 0 & 0 & 0 & 0 & \ldots & 0 \end{bmatrix}.}} & (23) \end{matrix}$

By separating real and imaginary parts, equation (21) can be rewritten as

$\begin{matrix} {{\underset{\underset{Q{(d)}}{}}{\begin{bmatrix} {{Re}\left( {A + B} \right)} & {- {{Im}\left( {A - B} \right)}} \\ {{Im}\left( {A + B} \right)} & {{Re}\left( {A - B} \right)} \end{bmatrix}}\begin{bmatrix} {{Re}(c)} \\ {{Im}(c)} \end{bmatrix}} = \begin{bmatrix} ϛ \\ 0 \end{bmatrix}} & (24) \end{matrix}$

In general, for motors with more than two phases (i.e. p>2), there are fewer equations than unknowns in (24). Therefore, a unique solution is not expected. The pseudo-inverse offers the minimum-norm solution, i.e. minimum ∥c∥, which is consistent with the minimum power losses. Thus

$\begin{matrix} {{c = {\begin{bmatrix} I_{N} & {jI}_{N} \end{bmatrix}{Q^{+}\begin{bmatrix} ϛ \\ 0 \end{bmatrix}}}},} & (25) \end{matrix}$

where Q⁺ represents the pseudo-inverse of matrix Q and I_(N) is the N×N identity matrix.

Having explained the theory relating to modeling and control of motor torque in terms of Fourier series, the following explains how the commutation law is modified at high velocity, according to the present invention, for ripple compensation and derivation of the torque transfer function taking into account the dynamics of the driver/amplifier 140.

First, with respect to ripple compensation, since motor phase currents are determined based on sinusoidal functions of the motor angle, high motor velocities result in a high drive frequency that makes it difficult for the commutator 130 to track the reference current input. Therefore, design of ripple-free commutation at high velocities necessitates taking the dynamics of the driver/amplifier 140 into account.

In practice, the range of motor velocities in which torque-ripple compensation (without velocity compensation) becomes problematic depends on three factors: i) bandwidth (BW) of the driver/amplifier (in rad/s); ii) the number of motor poles q; and iii) the maximum harmonics of the motor back-emf waveform n. Specifically, the motor velocity ω (in rpm) should be less than (30*BW)/(pi*q*n). For example, for BW=100 rad/s, q=2, and n=10, velocity induced torque ripple becomes problematic at 47.8 rpm and higher. With h(t) defined as the impulse response of the driver/amplifier 140, the actual and dictated phase currents are no longer identical, rather they are related by

i _(k)(t)=∫₀ ^(l) i* _(k)(ζ) h(t−ζ) dζ ∀k=1, . . . , p.   (26)

After substituting (5) and (1) into (26), the total motor torque can be expressed as

$\begin{matrix} \begin{matrix} {{\tau \left( {\tau_{d},\theta} \right)} = {\sum\limits_{k = 1}^{p}{\left( {\sum\limits_{m = {- N}}^{N}{d_{m}^{j\; {m{({{q\; {\theta {(t)}}} + {2\pi \frac{k - 1}{p}}})}}}}} \right) \times}}} \\ {{\int_{0}^{t}{{\tau_{d}(\zeta)}{\sum\limits_{n = {- N}}^{N}{c_{n}^{j\; {n{({{q\; {\theta {(\zeta)}}} + {2\pi \frac{k - 1}{p}}})}}}{h\left( {t - \zeta} \right)}{\zeta}}}}}} \\ {= {p{\sum\limits_{\underset{n \neq 0}{n = {- N}}}^{N}{\sum\limits_{l = {{({n - N})}/p}}^{{({n + N})}/p}{c_{n}d_{{pl} - n}^{{j\rho}\; l\; \theta} \times}}}}} \\ {\left( {\int_{0}^{t}{{\tau_{d}(\zeta)}^{{- j}\; q\; \omega \; {n{({t - \zeta})}}}{h\left( {t - \zeta} \right)}{\zeta}}} \right)} \end{matrix} & (27) \end{matrix}$

Equation (27) is obtained by using (11) and assuming a constant velocity, i.e., θ(t)−θ(ζ)=ω(t−ζ). The integral term in the right-hand-side of (27) can be written as the convolution integral, τ_(d)(t)*e^(−jqωnt)h(t), where function e^(−jqωnt)h(t) can be interpreted as the impulse response of a virtual system associated with the nth harmonics. Then, the corresponding steady-state response to the step torque input response is given by τ_(d)H(jqωn), where H(s) is the Laplace transform of function of h(t), i.e., the amplifier's transfer functions. Now, define coefficients

c′ _(n) =c _(n) H(jqnω) ∀n=1, . . . , N   (28)

and the corresponding vector c′=col(c′₁, . . . , c′_(N)) is related to vector c by

c′=D(ω)c   (29)

where

D(ω)=diag(H(jqω), H(j2qω), . . . , H(jNqω)).

A person of skill in the art will understand that the angular velocity variable ω in (28) and (29) should not be confused with the frequency. Since H(−jqnω)= H(jqnω), the new coefficients satisfy

c′ _(−n)= c′ _(n) ∀n=1, . . . , N

Therefore, c′ are the compensated Fourier coefficients of a commutation law that in the presence of actuator dynamics yields the same steady-state torque profile as the commutation law set forth above. This means that all commutations that yield ripple-free torques at constant velocity ω must satisfy the constraint equation (21) with c being replaced by c′. Therefore, the Fourier coefficients of the commutation law that at rotor velocity ω yields ripple-free torque must satisfy:

AD(ω)c+BD(ω) c−ζ=0,

or equivalently

Ac′+B c′−ζ=0.   (30)

Furthermore, as discussed below, power dissipation in the presence of amplifier dynamics is proportional to ∥c′∥². Taking into account the relationship between actual and dictated phase currents set forth in (26), the average power dissipation is

$\begin{matrix} \begin{matrix} {P_{loss} \propto {\sum\limits_{k = 1}^{p}{\lim\limits_{T->\infty}{\frac{1}{T}{\int_{0}^{T}{\left( {\int_{0}^{t}{\sum\limits_{n = {- N}}^{N}{c_{n}^{j\; q\; \omega \; n\; \xi}{h\left( {t - \xi} \right)}{\xi}}}} \right)^{2}{t}}}}}}} \\ {= {\lim\limits_{T->\infty}{\frac{p}{T}{\int_{0}^{T}{\left( {c_{n}^{j\; {qn}\; \omega \; t}{\int_{0}^{t}{^{{- j}\; {qn}\; \omega \; v}{h(v)}{v}}}} \right)^{2}{t}}}}}} \\ {= {\lim\limits_{T->\infty}{\frac{p}{T}{\int_{0}^{T}{\left( {c_{n}^{\prime}^{j\; {qn}\; \omega \; t}} \right)^{2}{t}}}}}} \end{matrix} & (31) \end{matrix}$

It follows from (18)-(19), above, that

P_(loss) ∝ p∥c′∥²   (32)

Therefore, in view of (30) and (32), one can conclude that the problem of finding a coefficient c′ that minimizes power dissipation and yields ripple-free torque at particular motor velocity ω can be similarly formulated as set forth in (20) if c is replace by c′. Having determined c′, the spectrum of actual commutation, c, can be obtained from the linear relationship set forth in (29) through matrix inversion.

Next, in order to derive the torque transfer function in view of amplifier dynamics, the position independent part of the generated torque is

$\begin{matrix} \begin{matrix} {{\tau_{1{in}}\left( \tau_{d} \right)} = {p{\sum\limits_{n = {- N}}^{N}{{\overset{\_}{c}}_{n}d_{n}{\int_{0}^{t}{{\tau_{d}(\zeta)}^{{- j}\; q\; \omega \; {n{({t - \zeta})}}}{h\left( {t - \zeta} \right)}{\zeta}}}}}}} \\ {= {{g(t)}*{\tau_{d}(t)}}} \end{matrix} & (33) \end{matrix}$

where * denotes the convolution integral and g(t) is the impulse function of the system,

$\begin{matrix} {{{g(t)} = {2p{\sum\limits_{n = 1}^{N}{{a_{n}}{\cos \left( {{q\; \omega \; {nt}} + {\angle \; a_{n}}} \right)}{h(t)}}}}},} & (34) \end{matrix}$

with a_(n)=c_(n) d _(n).

Transforming function (34) into the Laplace domain, the system torque transfer function becomes

$\begin{matrix} {\left. {{G(s)} = {{p{\sum\limits_{n = 1}^{N}{a_{n}{H\left( {s + {j\; {qn}\; \omega}} \right)}}}} + {{\overset{\_}{a}}_{n}{H\left( {s - {j\; {qn}\; \omega}} \right)}}}} \right),} & (35) \end{matrix}$

where

${G(s)} = {\frac{\tau_{1\; {in}}(s)}{\tau_{d}(s)}.}$

Returning to the BLDC motor 100 of FIG. 1, the Fourier coefficients of the commutation law may be calculated experimentally as a function of the desired velocity, according to the method set forth above. First, assume that the three-phase motor has two poles and drives mechanical load 160 (including the rotor 110) with inertia 0.05 kgm² and viscous friction 4 Nm.s/rad, and that the load is driven by commutator 130 under control of a Proportional Integral (PI) controller 150 within a velocity feedback loop, where the controller gains are set to

K_(p)=1.1 Nm.s/rad and K_(i)=18 Nm/rad,

so that the controller 150 achieves a well-damped behavior. A time varying desired velocity ω_(d) is input to the controller 150, which changes from 2 rad/s to 20 rad/s and then to 10 rad/s in three 2-second intervals. The relatively low bandwidth driver/amplifier 140 is characterized by the following transfer function

${H(s)} = \frac{60}{s + 60}$

The motor torque-angle profile (motor phase waveform) is shown in FIG. 2, and the corresponding complex Fourier coefficients, are listed in Table 1, which shows simulation results for the commutator 130 operating according to the conventional commutation law and according to the modified commutation law of the present invention, in terms of harmonic content of the torque shape function and the commutation shape functions:

TABLE 1 (Fourier Coefficients) Har- Torque Conventional Modified monics Function Commutation Commutation 1 −0.0678 − 0.9977i  −0.0105 − 0.1603i  0.0964 − 0.1673i 3 −0.0405 − 0.2107i  −0.0051 − 0.0305i  0.0558 − 0.0407i 5 −0.0063 − 0.0216i  0.0055 + 0.0098i −0.0272 + 0.0283i  7 0.0300 + 0.0315i −0.0026 − 0.0062i  0.0261 − 0.0182i 9 0.0365 + 0.0288i 0.0017 + 0.0018i −0.0093 + 0.0123i  11 0.0602 + 0.0173i −0.0025 + 0.0012i  −0.0113 − 0.0174i  13 −0.0137 + 0.0104i  0.0102 + 0.0018i −0.0056 + 0.0902i  15 0.0073 + 0.0027i 0.0030 + 0.0001i 0.0021 + 0.0297i 17 −0.0019 + 0.0017i  −0.0031 − 0.0000i  −0.0027 − 0.0347i  19 −0.0039 + 0.0019i  −0.0013 − 0.0003i  0.0030 − 0.0169i 21 −0.0005 − 0.0011i  0.0006 + 0.0011i −0.0142 + 0.0096i  23 −0.0017 − 0.0009i  0.0004 − 0.0006i 0.0099 + 0.0061i

Based on the detailed discussion and experimental results set forth above, the method according an aspect of the present invention for generating a ripple-free desired torque τ_(d) to a load (i.e. combination of rotor 110 and mechanical load 160), is shown in the flowchart of FIG. 3, and comprises receiving a desired motor velocity ω_(d) (step 300), receiving the actual velocity ω and rotor position angle θ from the mechanical load 160 (step 310), generating armature phase drive currents i*_(k), from the desired motor velocity ω_(d), actual velocity ω and rotor position angle θ using a modified commutation law (step 320), amplifying the armature phase drive currents via driver/amplifier 140 (step 340) and applying the resulting currents i_(k) to armature 120 (step 350) for rotating the rotor 110 and load 160, wherein the modified commutation law (step 320) comprises computing the fixed Fourier coefficients of the commutation function at zero velocity according to equation (25)

${c^{\prime} = {\begin{bmatrix} I_{N} & {j\; I_{N}} \end{bmatrix}{Q^{+}\begin{bmatrix} ϛ \\ 0 \end{bmatrix}}}},$

(step 320 a); computing the compensated Fourier coefficients at any desired velocity according to equation (29) c=D⁻¹(ω)c′ (step 320 b); computing the phase currents by modulating the desired torque with the corresponding commutation functions according to equations (5) and (6) i*_(k)(τ_(d),θ)=τ_(d) u_(k)(θ), ∀k=1, . . . , p and

${{u(\theta)} = {\sum\limits_{n = {- N}}^{N}{c_{n}^{j\; {nq}\; \theta}}}},$

(step 320 c); and returning to step 320 b.

The spectrums of (i) the conventional commutation scheme (i.e. without taking the frequency response of the amplifiers into account) based on the fixed Fourier coefficients of equation (25) ii) the modified commutation scheme based on velocity dependent Fourier coefficients (29), for ω_(d)=20 rad/s, are given in the third and fourth columns of Table 1, respectively.

The waveforms of the commutator corresponding to various rotor velocities for one cycle are illustrated in FIG. 4.

The bode plots of the torque transfer function obtained from (35) along with the amplifier transfer function are illustrated in FIG. 5.

Trajectories of the motor torque and velocity obtained from the step-input response of the closed-loop system with the conventional and modified commutation functions are illustrated in FIGS. 6A, 6B and 7A, 7B, respectively.

It is apparent from the foregoing that the conventional commutation law is able to eliminate pulsation torque only at low velocity whereas the modified commutation method according to the present invention does so for any velocity.

In conclusion, an apparatus and method are set forth for electronically controlled commutation based on Fourier coefficients for BLDC motors operating at high velocity while the driver/amplifier bandwidth is limited. As discussed above, the excitation currents are preshaped based on not only rotor angle but also velocity in such a way that the motor always generates the requested (desired) torque while minimizing power losses. Unlike prior art commutation schemes, perfect ripple cancellation is effected at every velocity making the commutation method of the present invention particularly suitable for velocity servomotor systems, (e.g., flywheel of a spacecraft). The simulations set forth above demonstrate that the performance of a velocity servomotor system is compromised by velocity if the conventional prior art commutation scheme is used whereas the commutation scheme according to the present invention significantly reduces torque ripple and velocity fluctuation.

The many features and advantages of the invention are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the invention that fall within the true spirit and scope of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation illustrated and described, and accordingly all suitable modifications and equivalents may be resorted to, falling within the scope of the invention. 

What is claimed is:
 1. A method of driving a load via a brushless DC motor, comprising: receiving a desired motor velocity ω_(d); receiving actual velocity ω and rotor position angle θ from said load; generating armature phase drive currents i*_(k), for a desired torque τ_(d) from the desired motor velocity ω_(d), actual velocity ω and rotor position angle θ using a modified commutation law; amplifying the armature phase drive currents via a driver/amplifier; and applying the amplified armature phase drive currents i_(k) to an armature of said brushless DC motor for inducing rotation of said rotor and thereby rotating said load; wherein the modified commutation law comprises calculating compensated Fourier coefficients c′ of a truncated (finite) Fourier series approximating the armature phase drive currents for said desired motor velocity ω_(d) as a function of the actual velocity ω and transfer function of said driver/amplifier.
 2. The method of claim 1, wherein said modified commutation law further comprises: a) computing fixed Fourier coefficients c of said Fourier series at zero velocity; b) computing said compensated Fourier coefficients c′ at said desired motor velocity ω_(d); c) computing the armature phrase drive currents i*k by modulating the desired torque τ_(d) with said corresponding commutation functions u_(k)(θ) according to i*_(k)(τ_(d),θ)=τ_(d) u_(k)(θ), ∀k=1, . . . , p and ${{u(\theta)} = {\sum\limits_{n = {- N}}^{N}{c_{n}^{j\; {nq}\; \theta}}}};$ and d) returning to b).
 3. The method of claim 2, wherein said fixed Fourier coefficients c are computed according to $c^{\prime} = {\begin{bmatrix} I_{N} & {j\; I_{N}} \end{bmatrix}{{Q^{+}\begin{bmatrix} ϛ \\ 0 \end{bmatrix}}.}}$
 4. The method of claim 2, wherein said compensated Fourier coefficients c′ are computed according to c=D⁻¹(ω)c′.
 5. The method of claim 2, wherein said armature phase drive currents i*_(k), are computed by modulating the desired torque τ_(d) with said corresponding commutation functions u_(k)(θ) according to i*_(k)(τ_(d),θ)=τ_(d) u_(k)(θ), ∀k=1, . . . , p and ${{u(\theta)} = {\sum\limits_{n = {- N}}^{N}{c_{n}^{j\; {nq}\; \theta}}}},$
 6. A controller for controlling rotation of a load by a brushless DC motor having a stator and a rotor, comprising: a motion controller for receiving a desired motor velocity ω_(d), actual velocity ω and rotor position angle θ from said load; a commutator for generating armature phase drive currents i*_(k), for a desired torque τ_(d) from the desired motor velocity ω_(d), actual velocity ω and rotor position angle θ; a driver/amplifier for amplifying the armature phase drive currents and applying the amplified armature phase drive currents i_(k) to an armature of said stator for inducing rotation of said rotor and thereby rotating said load; wherein said motion controller and commutator generate said armature phase drive currents i*_(k) according to a modified commutation law comprising calculating compensated Fourier coefficients c′ of a truncated (finite) Fourier series approximating the armature phase drive currents for said desired motor velocity ω_(d) as a function of the actual velocity ω and transfer function of said driver/amplifier.
 7. The apparatus of claim 6, wherein said modified commutation law further comprises: a) computing fixed Fourier coefficients c of said Fourier series at zero velocity; b) computing said compensated Fourier coefficients c′ at said desired motor velocity ω_(d); c) computing the armature phrase drive currents i*k by modulating the desired torque τ_(d) with said corresponding commutation functions u_(k)(θ) according to i*_(k)(τ_(d),θ)=τ_(d) u_(k)(θ), ∀k=1, . . . , p and ${{u(\theta)} = {\sum\limits_{n = {- N}}^{N}{c_{n}^{j\; {nq}\; \theta}}}};$ and d) returning to b).
 8. The apparatus of claim 7, wherein said fixed Fourier coefficients c are computed according to $c^{\prime} = {\begin{bmatrix} I_{N} & {j\; I_{N}} \end{bmatrix}{{Q^{+}\begin{bmatrix} ϛ \\ 0 \end{bmatrix}}.}}$
 9. The apparatus of claim 7, wherein said compensated Fourier coefficients c′ are computed according to c=D⁻¹(ω)c′.
 10. A brushless DC motor, comprising: a rotor for rotating a mechanical load; a stator having armature coils; controller for receiving a desired motor velocity ω_(d), actual velocity ω and rotor position angle θ from said load; a commutator for generating armature phase drive currents i*_(k), for a desired torque τ_(d) from the desired motor velocity ω_(d), actual velocity ω and rotor position angle θ; a driver/amplifier for amplifying the armature phase drive currents and applying the amplified armature phase drive currents i_(k) to the armature coils of said stator for inducing rotation of said rotor and thereby rotating said load; wherein said controller and commutator generate said armature phase drive currents i*_(k) according to a modified commutation law comprising calculating compensated Fourier coefficients c′ of a truncated (finite) Fourier series approximating the armature phase drive currents for said desired motor velocity ω_(d) as a function of the actual velocity ω and transfer function of said driver/amplifier.
 11. The brushless DC motor of claim 10, wherein said modified commutation law further comprises: a) computing fixed Fourier coefficients c of said Fourier series at zero velocity; b) computing said compensated Fourier coefficients c′ at said desired motor velocity ω_(d); c) computing the armature phrase drive currents i*k by modulating the desired torque τ_(d) with said corresponding commutation functions u_(k)(θ) according to i*_(k)(τ_(d),θ)=τ_(d) u_(k)(θ), ∀k=1, . . . , p and ${{u(\theta)} = {\sum\limits_{n = {- N}}^{N}{c_{n}^{j\; {nq}\; \theta}}}};$ and d) returning to b).
 12. The brushless DC motor of claim 11, wherein said fixed Fourier coefficients c are computed according to $c^{\prime} = {\begin{bmatrix} I_{N} & {j\; I_{N}} \end{bmatrix}{{Q^{+}\begin{bmatrix} ϛ \\ 0 \end{bmatrix}}.}}$
 13. The brushless DC motor of claim 11, wherein said compensated Fourier coefficients c′ are computed according to c=D⁻¹(ω)c′. 